package com.javaspeak.designpatterns.go4.structural.adapter;

/**
 * This is the interface that the Application (ApplicationAdapter)
 * expects to call.
 * <p>
 * There is no implementation for Square and we want to use the drawSquare()
 * implementation of Shape.
 * <p>
 * We create an adapter called ShapeAdapter which implements Square so that
 * code in the Application does not have to change.  Internally the
 * ShapeAdapter makes a call to the drawSquare() method of Shape.  Shape and
 * ShapeImpl are legacy code.
 *
 * @author John Dickerson
 */
public interface Square {

    /**
     * This draw() method is called by the Application.
     */
    public void draw();
}
